package tge

const (
	INT_MAX		= int(^uint(0) >> 1)
	INT64_MAX 	= int64(^uint64(0) >> 1)
	INT32_MAX 	= int32(^uint32(0) >> 1)
	INT16_MAX	= int16(^uint16(0) >> 1)
)

// 计算 int32 加法，返回值应该防止溢出
func GetSum32(v1, v2 int32) int32 {
	var ret = v1 + v2
	if ret < v1 || ret < v2 {
		ret = INT32_MAX
	}
	return ret
}

func GetSum16(v1, v2 int16) int16 {
	var ret = v1 + v2
	if ret < v1 || ret < v2 {
		ret = INT16_MAX
	}
	return ret
}

func GetDec32(v1, v2 int32) int32 {
	var ret = v1 - v2
	if ret < 0 {
		ret = 0
	} else if ret > v1 {
		ret = v1
	}
	return ret
}

func GetDec16(v1, v2 int16) int16 {
	var ret = v1 - v2
	if ret < 0 || ret > v1 {
		ret = 0
	}
	return ret
}